package com.taobao.api.extra;

import com.taobao.api.TaobaoApiException;
import com.taobao.api.extra.model.CatStatsGetRequest;
import com.taobao.api.extra.model.CatStatsGetResponse;
import com.taobao.api.extra.model.ItemStatsGetRequest;
import com.taobao.api.extra.model.ItemStatsGetResponse;
import com.taobao.api.extra.model.TbqlQueryResponse;
import com.taobao.api.extra.model.TradeStatsGetRequest;
import com.taobao.api.extra.model.TradeStatsGetResponse;

/**
 * 内部接口
 * 
 * 此接口中包括TopClient中所有的客户端API 每个API被调用后均返回一个Response结果，此结果中包括：错误码 code，错误信息
 * msg，重定向URL redirectUrl， 以及Http请求返回的结果的body部分 ，另包括调用这个API成功时返回的真实结果
 * 
 * @version 2008-11-7
 * @author ruowang
 * 
 */
public interface TaobaoExtraApi {
	/**
	 * 此接口方法用以根据查询时间段统计出店铺在这一时间段内按天的销售额、销售量列表.(支持分页) apiType=2，
	 * 部分服务调用，需要签名校验和用户绑定,需要传入sessionid
	 * 
	 * @param tradeStatRequest
	 * @param sip_sessionid
	 * @return TradeStatsGetResponse ;
	 * @throws TaobaoApiException
	 */
	public TradeStatsGetResponse tradeStatGet(
			TradeStatsGetRequest tradeStatRequest, String sessionId)
			throws TaobaoApiException;

	/**
	 * 此接口方法用以根据查询时间段统计出店铺在这一时间段内按(后台)商品类目的销售额、销售量列表.(支持分页) apiType=2，
	 * 部分服务调用，需要签名校验和用户绑定,需要传入sessionid
	 * 
	 * @param catStatRequest
	 * @param sip_sessionid
	 * @return CatStatsGetResponse ;
	 * @throws TaobaoApiException
	 */
	public CatStatsGetResponse catStatGet(CatStatsGetRequest catStatRequest,
			String sessionId) throws TaobaoApiException;

	/**
	 * 此接口方法用以根据查询时间段统计出店铺在这一时间段内按商品的销售额、销售量列表.(支持分页) apiType=2，
	 * 部分服务调用，需要签名校验和用户绑定,需要传入sessionid
	 * 
	 * @param itemStatRequest
	 * @param sip_sessionid
	 * @return ItemStatsGetResponse ;
	 * @throws TaobaoApiException
	 */
	public ItemStatsGetResponse itemStatGet(
			ItemStatsGetRequest itemStatRequest, String sessionId)
			throws TaobaoApiException;

	/**
	 * Tbql查询
	 * 
	 * @param tbql
	 * @param sessionId
	 * @return
	 * @throws TaobaoApiException 
	 */
	public TbqlQueryResponse tbql(String tbql, String sessionId) throws TaobaoApiException;

	/**
	 * Tbql查询
	 * 
	 * @param tbql
	 * @return
	 * @throws TaobaoApiException 
	 */
	public TbqlQueryResponse tbql(String tbql) throws TaobaoApiException;

}
